// 给定一个整数，写一个函数来判断它是否是 4 的幂次方。如果是，返回 true ；否则，返回 false 。

// 整数 n 是 4 的幂次方需满足：存在整数 x 使得 n == 4x

// 来源：力扣（LeetCode）
// 链接：https://leetcode-cn.com/problems/power-of-four
// 著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。

/**
 * @param {number} n
 * @return {boolean}
 */
 var isPowerOfFour = function (n) {
  // 0xaaaaaaaa = 10101010101010101010101010101010 (偶数位为1，奇数位为0）
  // 0x55555555 = 1010101010101010101010101010101 (偶数位为0，奇数位为1）
  // 0x33333333 = 110011001100110011001100110011 (1和0每隔两位交替出现)
  // 0xcccccccc = 11001100110011001100110011001100 (0和1每隔两位交替出现)
  // 0x0f0f0f0f = 00001111000011110000111100001111 (1和0每隔四位交替出现)
  // 0xf0f0f0f0 = 11110000111100001111000011110000 (0和1每隔四位交替出现)

  // if (n === 1) return true
  // if (n < 4) return false
  // let strn =  n.toString(2)
  // return strn.slice(1).replace(/0+/, 'true') === 'true' && strn.slice(1).length%2 === 0
  
  if (n === 1) return true;
  if (n < 4) return false;
  if ((n & (n - 1)) !== 0) return false;
  if ((n & 0x55555555) !== n) return false;
  return true;
};